package cjq.demo.thread.ch3_8;

import java.util.List;
import java.util.concurrent.Exchanger;

/**
 * Created by cjianquan on 2016/4/27.
 */
public class Consumer implements Runnable {
    private List<String> buffer ;

    private final Exchanger<List<String>> exchanger;

    public Consumer(List<String> buffer,Exchanger<List<String>> exchanger){
        this.buffer = buffer;
        this.exchanger = exchanger;
    }

    public void run(){
        int cycle = 1;
        for (int i = 0; i < 10; i++) {
            System.out.println("Consumer: Cycle"+cycle);
            try{
                buffer = exchanger.exchange(buffer);
            }catch(InterruptedException e){
                e.printStackTrace();
            }
            System.out.println("Consumer: "+buffer.size());
            for(int j=0;j<10;j++){
                String message = buffer.get(0);
                System.out.println("Consumer : "+message);
                buffer.remove(0);
            }
            cycle++;
        }
    }
}
